<template>
  <div class="radar">
    <!-- 这个盒子专门用来放雷达图 -->
    <div ref="mybox" class="box" />
  </div>
</template>

<script>
// 装包 => 导包 => 使用方法
// 全部导入(导入一些无用的包)
// import * as echarts from 'echarts'
// 按需导入

// 按需加载
// import * as echarts from 'echarts/core' // 引入主模块
// import { RadarChart } from 'echarts/charts' // 引入雷达图
// // 引入提示框和标题组件
// import { TitleComponent, TooltipComponent, LegendComponent } from 'echarts/components'
// // 引入canvas渲染器
// import { CanvasRenderer } from 'echarts/renderers'
// // 注册必须的组件
// echarts.use(
//   [TitleComponent, TooltipComponent, LegendComponent, RadarChart, CanvasRenderer]
// )

// 引入 echarts 核心模块，核心模块提供了 echarts 使用必须要的接口。
import * as echarts from 'echarts/core'
// 引入雷达图图表，图表后缀都为 Chart
import { RadarChart } from 'echarts/charts'
// 引入提示框，标题，图例
import {
  TitleComponent,
  TooltipComponent,
  LegendComponent
} from 'echarts/components'

// 引入 Canvas 渲染器，注意引入 CanvasRenderer 或者 SVGRenderer 是必须的一步
import { CanvasRenderer } from 'echarts/renderers'

// 注册必须的组件
echarts.use([
  TitleComponent,
  TooltipComponent,
  CanvasRenderer,
  RadarChart,
  LegendComponent
])

export default {
  mounted() {
    // 已经挂载好真实dom => 获取dom
    // 基于准备好的dom(必须有宽高)，初始化echarts实例
    var myChart = echarts.init(this.$refs.mybox)
    // 绘制图表
    myChart.setOption({
      // 标题
      title: {
        text: '个人能力图'
      },
      // 图例
      legend: {
        data: ['个人', '平均'],
        right: 0,
        orient: 'vertical'
      },
      radar: {
        // shape: 'circle',
        indicator: [
          { name: '工作效率', max: 100 },
          { name: '考勤', max: 100 },
          { name: '积极性', max: 100 },
          { name: '帮助同事', max: 100 },
          { name: '自主学习', max: 100 },
          { name: '正确率', max: 100 }
        ]
      },
      series: [
        {
          name: '个人 vs 平均',
          type: 'radar',
          data: [
            {
              value: [80, 60, 90, 90, 40, 60],
              name: '个人'
            },
            {
              value: [60, 60, 60, 60, 60, 60],
              name: '平均'
            }
          ]
        }
      ]
    })
  }
}
</script>

<style lang="scss" scoped>
.radar {
  .box {
    width: 500px;
    height: 400px;
    // background-color: #8df;
  }
}

</style>
